Many scenarios in computer systems involve relocating a block of data, such as the representation of an object, from one area of memory to another. The relocation is generally performed by performing a per-word copy of the data from a source memory to a destination memory. The relocation also involves updating references to the object, such as memory pointers, from the source memory to the destination memory. Once the references are updated, the block of memory in the source memory may be deallocated for reuse.